Taking architecture and compiler into account in formal proofs of numerical programs. (Preuves formelles de programmes numériques en prenant en compte l'architecture et le compilateur)
نویسنده
چکیده
On some recently developed architectures, a numerical program may give different answersdepending on the execution hardware and the compilation. These discrepancies of the resultscome from the fact that each floating-point computation is calculated with different precisions.The goal of this thesis is to formally prove properties about numerical programs while takingthe architecture and the compiler into account. In order to do that, we propose two differentapproaches. The first approach is to prove properties of floating-point programs that are true formultiple architectures and compilers. This approach states the rounding error of each floating-point computation whatever the environment and the compiler choices. It is implemented inthe Frama-C platform for static analysis of C code. The second approach is to prove behavioralproperties of numerical programs by analyzing their compiled assembly code. We focus on theissues and traps that may arise on floating-point computations. Direct analysis of the assemblycode allows us to take into account architectureor compiler-dependent features such as thepossible use of extended precision registers. It is implemented above the Why platform fordeductive verification.
منابع مشابه
Program Extraction in a Logical Framework Setting
This paper demonstrates a method of extracting programs from formal deductions represented in the Edinburgh Logical Framework, using the Elf programming language. Deductive systems are given for the extraction of simple types from formulas of rst-order arithmetic and of-calculus terms from natural deduction proofs. These systems are easily encoded in Elf, yielding an implementation of extractio...
متن کاملDe la transformation de prédicats à la transformation de programmes
Les transformateurs de prédicats ont été introduits par Dijkstra et ont permis de fonder la théorie des preuves de programmes et la théorie de l’affinement des systèmes d’actions. Ce texte analyse le lien existant entre les transformateurs de prédicats et les systèmes d’actions affinés. Les hypothèses d’équité sont prises en compte et une uniformisation de la présentation permet de démontrer le...
متن کاملA Numerical Model of Wear Taking Account of Multidirectional Effects Un Modèle Numerique D’usure Tenant Compte Des Effets Multidirectionnels
De nombreux travaux ont montré que le changement de direction de glissement était un facteur aggravant l’usure entre deux corps en contact. L’objectif de cette étude est de proposer un modèle d’usure capable de rendre compte de ces observations. Ce modèle essaie de montrer qu’une part des effets multidirectionnels est le résultat de la variation de l’usure en fonction du nombre de cycles. Les r...
متن کاملBinary Heaps Formally Verified in Why3
The VACID-0 benchmarks is a set of small programs which pose challenges for formal verification of their functional behavior. This paper reports on the formal verification of one of these challenges: binary heaps. The solution given here is performed using the Why3 environment for program verification. The expected behavior of the program is specified in Why3 logic, structured using the constru...
متن کاملProof of Imperative Programs in Type TheoryJean - Christophe
Proofs of correctness of imperative programs are traditionally done in rst order frameworks derived from Hoare logic 8]. On the other hand, correctness proofs of purely functional programs are almost always done in higher order logics. In particular, the realizability 10] allow to extract correct functional programs from constructive proofs of existential formulae. In this paper, we establish a...
متن کامل